#@ load("openapi.lib.yml", "response", "reference", "type", "array")

paths:
  /cluster:
    get:
      tags:
        - cluster
      summary: Get cluster status info
      description: Get information about the current state and composition of the cluster
      operationId: cluster_status
      responses: #@ response(reference("ClusterStatus"))

  /cluster/recover:
    post:
      tags:
        - cluster
      summary: Tries to recover current peer Raft state.
      operationId: recover_current_peer
      responses: #@ response(type("boolean"))

  /cluster/peer/{peer_id}:
    delete:
      tags:
        - cluster
      summary: Remove peer from the cluster
      description: Tries to remove peer from the cluster. Will return an error if peer has shards on it.
      operationId: remove_peer
      parameters:
        - name: peer_id
          in: path
          description: Id of the peer
          required: true
          schema:
            type: integer
        - name: force
          in: query
          description: If true - removes peer even if it has shards/replicas on it.
          schema:
            type: boolean
            default: false
      responses: #@ response(type("boolean"))